home *** CD-ROM | disk | FTP | other *** search
Wrap
---------------------------------------------------------------------------------------------------- 4.53 @1 - Moved CloseScreen and NewCloseWB from MPPatch.c to MPCloseScreenPatch.c ---------------------------------------------------------------------------------------------------- 4.53 @2 - ptOpenNodes.c Added new function: FindOpenNode() ---------------------------------------------------------------------------------------------------- 4.53 @3 - MPCloseScrPatch.c replaced: ... on=(struct OpenNode *)MPSem->OpenList.lh_Head; while(on->on_Node.ln_Succ) { if(on->Screen==S) { Remove((struct Node *)on); found=TRUE; break; } on=(struct OpenNode *)on->on_Node.ln_Succ; } ... with ... if(on=FindOpenNode(S)) { Remove(on); ... ---------------------------------------------------------------------------------------------------- 4.53 @4 - MPCloseScrPatch.c Added ... /* Set flag so MP knows which OpenNode caused signal */ on->Flags|=(ON_CLOSESIGNAL); //4.53 @4 ... ---------------------------------------------------------------------------------------------------- 4.53 @5 - MPPatch.c Commented out ... // pd->OpenNode->Flags|=ON_BITMAP; // 4.53 @5 can be determined by chaecking on->BitMap ... ---------------------------------------------------------------------------------------------------- 4.53 @6 - MPPatch.c Added since SendMPMsg nolonger checks for a Data ptr. if(pd->OpenNode) // 4.53 @6 { ---------------------------------------------------------------------------------------------------- 4.53 @7 - MPPatch.c Renamed SendOpenNode to SendMPMsg and parms change ... // 4.53 @7 renamed, parameter renamed BOOL SendMPMsg(ULONG Command, ULONG Code, APTR Data) ... ---------------------------------------------------------------------------------------------------- 4.53 @8 - MPLockPubPatch.c Added ... //4.53 @8 now clears ON_OPEN flag ObtainSemaphore(&MPSem->OpenListSem); if(on=FindOpenNode(ps)) { // clear the open flag so MP can close the screen on->Flags&=(~ON_OPEN); } ReleaseSemaphore(&MPSem->OpenListSem); ... ---------------------------------------------------------------------------------------------------- 4.53 @9 - MPLockPubPatch.c // 4.53 New Patch void __saveds __asm NewUnlockPubScreen(register __a0 UBYTE *Name, ---------------------------------------------------------------------------------------------------- 4.53 @10 - MPMain.c Added: ... //4.53 @10 Scan pubscreen list and check for screens that need to be closed ... ---------------------------------------------------------------------------------------------------- 4.53 @11 - MPLockPubPatch.c New semaphore should keep duplicate pubscreens from being created in a race condition ---------------------------------------------------------------------------------------------------- 4.53 @12 - MPCloseScrPatch.c Rewritten: No won't removes *on until it needs to. ---------------------------------------------------------------------------------------------------- 4.54 @1 - Removed most of Obtaining (NodeSem and ListSem) to fix deadlock ---------------------------------------------------------------------------------------------------- 4.55 @1 - MPNodes.c added check for NULL name. ---------------------------------------------------------------------------------------------------- 4.55 @2 - ptOpenNodes.c Commented out if(FindDisplayInfo) // 4.55 @3 MPPatch.c ---------------------------------------------------------------------------------------------------- 4.55 @3 - MPCloseScreen.c // 4.55 @3 - rv was not set till 4.55 ---------------------------------------------------------------------------------------------------- 4.55 @4 - MPCloseScreen.c PubScreenStatus(on->Screen,PSNF_PRIVATE); // Attempt to make screen private, if we can, close it! 4.55 @4 Could fail if public screen was already private! Causing unclosable open screen. ---------------------------------------------------------------------------------------------------- 4.55 @5 - MPCloseScreen.c /* 4.55 transplanted from mpmain.c */ void ClosePubScreens(void) ---------------------------------------------------------------------------------------------------- (4.55.6) - Work:sc/Programs/ModePro/Daemon/MPCloseScrPatch.c Description: Moved code from MPMain.c ... /* transplanted from mpmain.c */// (4.55.6) void ClosePubScreens(void) ... ---------------------------------------------------------------------------------------------------- (4.55.7) - Work:sc/Programs/ModePro/Daemon/MPCloseScrPatch.c Description: ScreenNotify Kludge ... /* The big birdie kludge // (4.55.7) 1. Check to see if the screen is private// (4.55.7) 2. Find out if the screen is private (used later)// (4.55.7) 3. Attempt to make the screen private. This should remove any visitors from the screennotify library. (Birdie)// (4.55.7) 4. Check to see if any visitors are on the screen // (4.55.7) If none then try to close it// (4.55.7) 5. If it didn't close for some add reason, then add the backdrop and make the screen public again// (4.55.7) */// (4.55.7) plist=LockPubScreenList(); // (4.55.7) PROCESS_LIST(plist,psn)// (4.55.7) {// (4.55.7) if(on->Screen==psn->psn_Screen)// (4.55.7) {// (4.55.7) ispublic=!(psn->psn_Flags & PSNF_PRIVATE);// (4.55.7) }// (4.55.7) }// (4.55.7) UnlockPubScreenList();// (4.55.7) // (4.55.7) PubScreenStatus(on->Screen,PSNF_PRIVATE); // (4.55.7) // (4.55.7) plist=LockPubScreenList(); // (4.55.7) PROCESS_LIST(plist,psn)// (4.55.7) {// (4.55.7) if(on->Screen==psn->psn_Screen)// (4.55.7) {// (4.55.7) if(psn->psn_VisitorCount==0)// (4.55.7) {// (4.55.7) closeit=1;// (4.55.7) }// (4.55.7) }// (4.55.7) }// (4.55.7) UnlockPubScreenList();// (4.55.7) // (4.55.7) if(closeit) // Only close it if no visitors // (4.55.7) {// (4.55.7) RemoveBackdrop(on->Screen); // Remove any backdrop (handles no backdrops)// (4.55.7) PreCloseOpenNode(on); // Free data that needs to be freed BEFORE the screen closes (ie Pens)// (4.55.7) // (4.55.7) if(rv=OldCloseScreen(on->Screen,IntuitionBase)) // Attempt to Close the screen// (4.55.7) {// (4.55.7) Remove((struct Node *)on); // 4.53 @12 - Remove Node from OpenList// (4.55.7) FreeOpenNode(on); // Free the OpenNode// (4.55.7) DEBUG_CODE(DKP(" CloseScreen() really closes screen!\n"););// (4.55.7) }// (4.55.7) }// (4.55.7) // (4.55.7) if(ispublic && !rv) // if the screen was public and closescreen failed.// (4.55.7) {// (4.55.7) PubScreenStatus(on->Screen,0); // Then make the screen public again.// (4.55.7) AddBackdrop(on->Screen,on->DN); // Re add the backdrop// (4.55.7) }// (4.55.7) } ... ---------------------------------------------------------------------------------------------------- (4.55.8) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: ... /* Pick a ModeID */ // (4.55.8) if(FindDisplayInfo(pd->DNode->ModeID)) // 4.55 @3// (4.55.8) {// (4.55.8) pd->ModeID =pd->DNode->ModeID;// (4.55.8) }// (4.55.8) else // If the screen Mode doesn't exist try to find a new mode// (4.55.8) {// (4.55.8) if(V39)// (4.55.8) {// (4.55.8) pd->ModeID=BestModeID(// (4.55.8) BIDTAG_DesiredWidth, pd->Width,// (4.55.8) BIDTAG_DesiredHeight, pd->Height,// (4.55.8) BIDTAG_NominalWidth, pd->Width,// (4.55.8) BIDTAG_NominalHeight, pd->Height,// (4.55.8) (pd->SetDepth ? BIDTAG_Depth:TAG_IGNORE), pd->Depth,// (4.55.8) TAG_DONE);// (4.55.8) // (4.55.8) }// (4.55.8) } ... ---------------------------------------------------------------------------------------------------- (4.56.1) - Work:sc/Programs/ModePro/Daemon/MPWinPatch.c Description: ... ... ---------------------------------------------------------------------------------------------------- (4.56.2) - Work:sc/Programs/ModePro/Daemon/MPWinPatch.c Description: added debug code ... // (4.56.2) DEBUG_CODE(// (4.56.2) DKP("OpenWindowTagList(%8lx,%8lx)\n",nw,TagList);// (4.56.2) PrintWindowTags(nw->Extension);// (4.56.2) ); ... ---------------------------------------------------------------------------------------------------- (4.56.3) - Work:sc/Programs/ModePro/Daemon/ptDebug.c Description: New debug funtion ... void PrintNewWindowData(struct ExtNewWindow *nw) ... ---------------------------------------------------------------------------------------------------- (4.56.4) - Work:sc/Programs/ModePro/Daemon/ptDebug.c Description: New debug funtion ... void PrintWindowTags(struct TagItem *TagList) ... ---------------------------------------------------------------------------------------------------- (4.56.5) - Work:sc/Programs/ModePro/Daemon/MPCloseScrPatch.c Description: Now returns LONG instead of BOOL ... LONG __saveds ASM NewCloseScreen(REG __a0 struct Screen *S,// (4.56.5) REG __a6 struct IntuitionBase *IBase) ... ---------------------------------------------------------------------------------------------------- (4.56.6) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: Replaced call to dos/GetProgram name to MyGetProgramName due to hit in dos version (I think) ... LONG MyGetProgramName(STRPTR Buffer, LONG Len)// (4.56.6) {// (4.56.6) LONG bp,l;// (4.56.6) struct Process *p;// (4.56.6) struct CommandLineInterface *cli;// (4.56.6) UBYTE *name;// (4.56.6) // (4.56.6) l=0;// (4.56.6) // (4.56.6) p=(struct Process *)FindTask(0);// (4.56.6) if(p->pr_Task.tc_Node.ln_Type==NT_PROCESS)// (4.56.6) {// (4.56.6) // We are a process// (4.56.6) if(bp=(p->pr_CLI<<2))// (4.56.6) {// (4.56.6) cli=(struct CommandLineInterface *)bp;// (4.56.6) if(name=(UBYTE *)(cli->cli_CommandName<<2)) // (4.56.6) {// (4.56.6) for(l=0;l<name[0] && l<Len-1;l++) // Copy BSTR to CSTR string// (4.56.6) {// (4.56.6) Buffer[l]=name[l+1]; // (4.56.6) }// (4.56.6) name[l]=0; // Add NULL // (4.56.6) }// (4.56.6) }// (4.56.6) }// (4.56.6) return(l);// (4.56.6) } ... 4.57 begins here ---------------------------------------------------------------------------------------------------- (4.56.7) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: value changed from -1 to INVALID_ID (the same, just prettier) ... pd->ModeID=INVALID_ID; ... ---------------------------------------------------------------------------------------------------- (4.56.8) - Work:sc/Programs/ModePro/Daemon/MPNodes.c Description: if ModeID is INVALID_ID, (ie app supplies SA_LikeWorkbench), then it ignores ModeID since OrigDisplayID can be INVALID_ID aswell if user typed in a name. ... if(ModeID!=INVALID_ID) { if((dn->OrigDisplayID == ModeID) || (dn->OrigDisplayID == (ModeID | ALL_MODES)) ) { return(dn); } } ... ---------------------------------------------------------------------------------------------------- (4.56.9) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: Best Mode support ... case MS_PROMOTE_BEST_MODE:// (4.56.9) // (4.56.9) DEBUG_CODE(DKP("Find Best Mode\n"););// (4.56.9) // (4.56.9) pd->OverscanType =pd->DNode->OverscanType;// (4.56.9) pd->Width =pd->DNode->Width;// (4.56.9) pd->Height =pd->DNode->Height;// (4.56.9) // (4.56.9) if(pd->DNode->Flags & DEPTH)// (4.56.9) {// (4.56.9) pd->Depth=pd->DNode->Depth;// (4.56.9) pd->SetDepth=TRUE;// (4.56.9) }// (4.56.9) // (4.56.9) if(V39)// (4.56.9) {// (4.56.9) pd->ModeID=BestModeID(// (4.56.9) ((pd->DNode->ModeID & MONITOR_ID_MASK) == MONITOR_ID_MASK ? BIDTAG_MonitorID : TAG_SKIP), pd->DNode->ModeID & MONITOR_ID_MASK,// (4.56.9) BIDTAG_DesiredWidth, pd->Width,// (4.56.9) BIDTAG_DesiredHeight, pd->Height,// (4.56.9) BIDTAG_NominalWidth, pd->Width,// (4.56.9) BIDTAG_NominalHeight, pd->Height,// (4.56.9) (pd->SetDepth ? BIDTAG_Depth:TAG_IGNORE), pd->Depth,// (4.56.9) TAG_DONE);// (4.56.9) }// (4.56.9) // (4.56.9) pd->Changed=TRUE;// (4.56.9) break; ... ---------------------------------------------------------------------------------------------------- (4.56.11) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description:Added skip ... TAG_SKIP ,(pd->SetDepth ? 0:1), ... ---------------------------------------------------------------------------------------------------- (4.58.1) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: re-enabled this, fixes problem where the program that opened the screen closes the screen freeing the original title, which is still used by some open windows. ... pd->NewTags[pd->TagNumber].ti_Tag=SA_Title;// (4.58.1) pd->NewTags[pd->TagNumber].ti_Data=(ULONG)pd->OpenNode->ScreenTitle;// (4.58.1) pd->TagNumber++; ... ---------------------------------------------------------------------------------------------------- (4.59.1) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: previously added NULL to name[] which was wrong. ... Buffer[l]=0; // Add NULL // (4.56.6) ... ---------------------------------------------------------------------------------------------------- (4.60.1) - Work:sc/Programs/ModePro/Daemon/MPWinPatch.c Description: Now checks for valid taglist like Intuition. could still fail. ... /* valid ram */// (4.60.1) if(((ULONG)nw->Extension & 1)==0 && TypeOfMem(nw->Extension))// (4.60.1) { ... ---------------------------------------------------------------------------------------------------- (4.61.1) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: no longer check for WBENCHSCREEN in the NewScreen structure (for DataMat) ... //pd->IsWorkbench =(ns->Type & SCREENTYPE)==WBENCHSCREEN; ... ---------------------------------------------------------------------------------------------------- (4.61.2) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: Can get tooltypes if renamed ... {// (4.61.2) char pname[256];// (4.61.2) // (4.61.2) if(GetProgramName(pname,256))// (4.61.2) {// (4.61.2) if(lock=GetProgramDir())// (4.61.2) {// (4.61.2) if(NameFromLock(lock,path,512))// (4.61.2) {// (4.61.2) if(AddPart(path,pname,512))// (4.61.2) {// (4.61.2) if(MPIcon=GetDiskObject(path))// (4.61.2) {// (4.61.2) LONG l;// (4.61.2) // (4.61.2) for(l=0;MPIcon->do_ToolTypes[l];l++);// (4.61.2) // (4.61.2) return(GetToolTypes(l,MPIcon->do_ToolTypes));// (4.61.2) }// (4.61.2) }// (4.61.2) }// (4.61.2) }// (4.61.2) }// (4.61.2) } ... ---------------------------------------------------------------------------------------------------- (4.62.1) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: Added Debug option to command line ... "DEBUG/S"; ... ---------------------------------------------------------------------------------------------------- (4.62.2) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: Added define for debug ... #define RA_DEBUG 5 ... ---------------------------------------------------------------------------------------------------- (4.62.3) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: And RAResults size upped for above ... LONG RAResults[6]={0}; ... ---------------------------------------------------------------------------------------------------- (4.62.4) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: Uncommented this. for above ... MPSem->Debug =RAResults[RA_DEBUG]; ... ---------------------------------------------------------------------------------------------------- (4.62.5) - Work:sc/Programs/ModePro/Daemon/MPReadArgs.c Description: Enabled Debug in Tooltypes ... MPSem->Debug =ArgYesNo (ttypes,(UBYTE *)"DEBUG",FALSE); ... ---------------------------------------------------------------------------------------------------- (4.62.6) - Work:sc/Programs/ModePro/Daemon/MPLockPubPatch.c Description: Typo fixed, was "Workench", caused lockup with P96 ... if(strcmp("Workbench",Name)) // Can't f with Workbench! //4.53 @1 rewired ... ---------------------------------------------------------------------------------------------------- (4.62.7) - Work:sc/Programs/ModePro/Daemon/MPPatch.c ---------------------------------------------------------------------------------------------------- (4.62.8) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: If MP's public screen fails 'promotion' then this prevents it from opening a dead screen. ... if(!GetTagData(SA_ModeProNode,0,TagList)) ... ---------------------------------------------------------------------------------------------------- (4.62.9) - Work:sc/Programs/ModePro/Daemon/BestMode.c Description: New function ... ULONG ValidMonitorID(ULONG DispID) ... ---------------------------------------------------------------------------------------------------- (4.62.10) - Work:sc/Programs/ModePro/Daemon/BestMode.c Description: Weedout bad IDs ... monitorid=ValidMonitorID(data); ... ---------------------------------------------------------------------------------------------------- (4.62.11) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: Renamed to PrefsToDoPort ... PutMsg(&MPSem->PrefsToDoPort,(struct Message *)mpm); ... ---------------------------------------------------------------------------------------------------- (4.62.12) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: No longer waits for ModePro to show the gui, caused deadlocks when the palette req was open. ... PutMsg(MPSem->DaemonPort,(struct Message *)mpm);// (4.62.12) // WaitForReply((struct Message *)mpm); ... ---------------------------------------------------------------------------------------------------- (4.62.13) - Work:sc/Programs/ModePro/Daemon/BestMode.c Description: commented out ... /* if(!dwidth)// (4.62.13) dwidth=nwidth;// (4.62.13) // (4.62.13) if(!dheight)// (4.62.13) dheight=nheight;// (4.62.13) */ ... ---------------------------------------------------------------------------------------------------- (4.62.14) - Work:sc/Programs/ModePro/Daemon/MPPatch.c Description: Used to send a message to ModePro to open prefs, now opens prefs directly. ... if(ShowGUI())// (4.62.14) { ... ---------------------------------------------------------------------------------------------------- (4.63.1) (09/17/00) - Work:sc/Programs/ModePro/4.x/Daemon/MPMain.c Description: updated, changed in extras.lib ... ex_CloseLibs(MP_Libs); ... ---------------------------------------------------------------------------------------------------- (4.63.2) (09/17/00) - Work:sc/Programs/ModePro/4.x/Daemon/MPMain.c Description: changed due to extras.lib ... if(ex_OpenLibs(argc, ... ---------------------------------------------------------------------------------------------------- (4.63.3) (09/17/00) - Work:sc/Programs/ModePro/4.x/Daemon/MPVer.c Description: new version system makes this file obsolete ... /* Obsolete ...